<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <script>
//   1.求任意数组里面所有元素的和及平均值
    //1.定义一个sum变量储存累加和
    //2.利用for循环遍历每个数实现累加
    //3.定义一个变量avg去储存平均值
    function getSumAndAvg(ary) {
        var sum=0
        for(var i=0;i<ary.length;i++){
          sum+=ary[i]
        }
        var avg=sum/ary.length
        return { sum: sum, avg: avg }; 
    }
    var ary1=[1,4,5,6,7,8,9]
    console.log("这是第一题的答案")
    console.log(getSumAndAvg(ary1))



// 2.求任意数组中的最大值
function getMaxNum(ary) {
  var maxNum=ary[0]
  for(var i=1;i<ary.length;i++){
      if(ary[i]>maxNum){
        maxNum=ary[i]
      }
  }
  return maxNum
  
}
var ary2=[1,4,5,6,8,12,56,78,12,45]
console.log("这是第二题的答案")
console.log(getMaxNum(ary2))//78

// 3.新建一个空数组，里面存放10个整数（1-10）
function pushNumToArray(num) {
    var ary1=[]
    for(var i=0;i<num;i++){
      ary1[i]=i+1
    }
return ary1
}
console.log("这是第三题的输出")
console.log(pushNumToArray(10))//放n也可以，即实现1~n之间数的存放
// 4.将数组[0,8,5,4,10,7,77,52]中大于等于10的元素选出来，放入新数组

function choiceMaxNum(ary) {
  var ary1=[]//定义一个新数组，存放大于10的数的值
  var j=0;//新数组索引从0开始
  for(var i=0;i<ary.length;i++){
    if(ary[i]>10){
     
      ary1[j]=ary[i]
      j++
    }
  }
  return ary1

}
var ary3=[0,8,5,4,10,7,77,52]
console.log("这是第四题的输出")
console.log(choiceMaxNum(ary3))//77,52

// 5.将数组[3,10,12,9,0,3,15,3,52,18,3]中的3去掉，形成一个不包含3的新数组
function removeNum(ary) {
  var ary1=[]//定义一个新数组，存储不包含3的元素
  var j=0
for(var i=0;i<ary.length;i++){
  if(ary[i]!=3){
    ary1[j]=ary[i]
    j++
  }
}
return ary1
}
var ary4=[3,10,12,9,0,3,15,3,52,18,3]
console.log("这是第五题的输出")
console.log(removeNum(ary4))//10,12,9,0,15,52,18
// 6.利用函数封装方式，对数组排序--冒泡排序
console.log("这是第六题的答案")
function bubble(ary) {
  var temp=0
    for(var i=0;i<ary.length-1;i++){
      for(var j=0;j<ary.length-i-1;j++){
        if(ary[j]>ary[j+1]){
          temp=ary[j]
          ary[j]=ary[j+1]
          ary[j+1]=temp//三杯水
          //其实还有两种方法，一种是算法，一种是用位与运算符
        }
      }
    }
    return ary
}
var ary5=[1,4,6,3,2,9,10,14]
console.log(bubble(ary5))
// 7.利用函数封装方式，翻转任意一个数组
function flip(ary) {
    for(var i=0;i<ary.length/2;i++){
      var temp=ary[i]
      ary[i]=ary[ary.length-i-1]
      ary[ary.length-i-1]=temp
     
    }
    return ary
}
console.log("这是第七题的答案")
var ary6=[1,2,3,4,5,6,7]
console.log(flip(ary6))
// 8.输入一个年份，判断是否是闰年
function judjeLeapYear(year) {
  //闰年：能被4整除但是不能被100整除或者能被400整除
  if((year%4==0&&year%100!=0)||(year%400==0)){
    console.log(`${year}是闰年`)
  }else{
    console.log(`${year}是平年`)
  }
}
console.log("这是第八题的答案")
console.log(judjeLeapYear(2000))
console.log(judjeLeapYear(2007))
// 9.写一个函数，用户输入任意两个数字的任意算术运算（简单的计算器小功能），并能弹出运算后的结果
function calculator(num1,num2) {
  var sum=num1+num2
  var subtraction=num1-num2
  var multiplication=num1*num2
  var division=num1/num2
  return {sum:sum,subtraction:subtraction,multiplication:multiplication,division:division}

}
  console.log("这是第九题的答案")
  console.log(calculator(1,5))
// 10. 写一个函数，用户输入任意两个数字的最大值，并能弹出运算后的结果
function getMaxNum(num1,num2){
var max=num1>num2?num1:num2
return max
}
console.log("这是第十题的答案")
console.log(getMaxNum(3,4))
// 11.写一个函数，用户输入任意三个不同数字的最大值，并弹出运算后的结果
function getMaxNumOfThree(num1,num2,num3) {
  var Maxnum=num1>num2?num1:num2
  var Maxnum=Maxnum>num3?Maxnum:num3
  return Maxnum
}
console.log("这是第十一题的答案")
  console.log(getMaxNumOfThree(1,6,3))
// 12.写一个函数，用户输入一个数判断是否是素数（又叫质数，只能被1和自身整除的数），并弹出返回值
//规则：只能被1和自身整除的数称为质数
function isPrimeNumber(n) {
  var count=0//计算次数
  for(var i=1;i<=n;i++){
    if(n%i==0){
      count++
    }
    if(count>2){
      break
    }
    
  }
  if(count==2){
      console.log(`${n}是素数`)
    }else{
      console.log(`${n}不是素数`)
    }

}
console.log("这是第十二题的答案")
console.log(isPrimeNumber(2))
console.log(isPrimeNumber(8))

// 13.九九乘法表
function multiplicationTable() {
  for(var i=1;i<=9;i++){
    for(var j=i;j<=9;j++){
      document.write(`${i}*${j}=${i*j} `)
      document.write("  ")
    }
    
    document.write('<br>')
    
  }
  document.write("其他答案都在控制台输出")
}
console.log("这是第十三题的答案")
console.log(multiplicationTable())

// 14.教材10元/本，参考书5元/本，练习本0.5元/本。100元买了100本书，各种书各有几本？
//鸡兔同笼问题 
function getBookNumber() {   
  for (var i = 0; i <= 100; i++) {  
    for (var j = 0; j <= 100 - i; j++) {  
      var k = 100 - i - j; // 在这里计算 k 的值  
      if (k % 2 === 0 && 10 * i + 5 * j + 0.5 * k === 100) { // 检查 k 是否为偶数，并验证等式  
        console.log(`i:=${i}, j:${j}, k:${k}`);  
      }  
    }  
  }  
}  
  
getBookNumber();
  

  
  
  
  
  </script>
</body>
</html>